package session

import (
	"crypto/rand"
	"encoding/hex"
	"note-go/pkg/redis"
	"time"
)

// 生成随机 SessionID
func NewSessionID() string {
	b := make([]byte, 16)
	_, _ = rand.Read(b)
	return hex.EncodeToString(b)
}

// 设置 Session
func SetSession(key, value string) error {
	return redis.Rdb.Set(redis.Ctx, key, value, 0).Err()
}

// 获取 Session
func GetSession(key string) (string, error) {
	return redis.Rdb.Get(redis.Ctx, key).Result()
}

// 删除 Session
func DeleteSession(key string) error {
	return redis.Rdb.Del(redis.Ctx, key).Err()
}

// Refresh 刷新 Session（延长有效期）
func Refresh(key string, ttl time.Duration) error {
	return redis.Rdb.Expire(redis.Ctx, key, ttl).Err()
}
